package leetcode;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * @author 李栋
 * @version 1.0.0
 * @className Test15.java
 * @createTime 2021年08月11日 21:41:00
 */
public class Test15 {

    public List<List<Integer>> threeSum(int[] nums) {
        List<List<Integer>> list = new ArrayList();
        if (nums.length <= 2) return list;
        Arrays.sort(nums);
        for (int i = 0; i < nums.length; i++) {
            for (int j = i + 1; j < nums.length; j++) {
                for (int k = j + 1; k < nums.length; k++) {
                    int num = nums[i] + nums[j] + nums[k];
                    if (num == 0) {
                        List<Integer> l1 = new ArrayList<>();
                        l1.add(nums[i]);
                        l1.add(nums[j]);
                        l1.add(nums[k]);
                        if (checkExist(l1, list)) {
                            list.add(l1);
                        }
                    }
                }
            }
        }
        return list;

    }

    private boolean checkExist(List<Integer> l1, List<List<Integer>> list) {
        for (List<Integer> l2 : list) {
            if (l1.get(0) == l2.get(0) && l1.get(1) == l2.get(1) && l1.get(2) == l2.get(2)) {
                return false;
            }
        }
        return true;
    }
}
